<?php

class Admin_CategoriaController extends Zend_Controller_Action
{

    public $categoriaMapper = null;

    public function init()
    {
		/* Initialize action controller here */
		$this->_helper->layout()->setLayout("admin");
		$this->categoriaMapper = new Application_Model_CategoriaMapper();
		
		
		if ( !Zend_Auth::getInstance()->hasIdentity() ) {
			return $this->_helper->redirector->goToRoute( array('module'=>'admin', 'controller' => 'auth'), null, true);
		}
    }

    public function indexAction()
    {
		$this->view->title = "Lista de categorias";
		
		$listaCategorias = $this->categoriaMapper->listarCategorias();
		
		$tamanhoLista = count($listaCategorias);
		
		if ($tamanhoLista == 0){
			$this->view->lista = NULL;
		}else {
			$this->view->lista = $listaCategorias;
		}
    }

    public function novaCategoriaAction()
    {
		$this->view->title = "Nova categoria";
			
		$form = new Application_Form_CadastroCategoria();
		$this->view->form = $form;
    }

    public function salvarAction()
    {
		$this->view->title = "Registro da categoria";

		$categoriaModel = new Application_Model_Categoria();
		
		//definindo destino da imagem
		$adapter = new Zend_File_Transfer_Adapter_Http();
		$adapter->setDestination("images/categorias");

		//transferindo a imagem
		$adapter->receive();

		//pegando parametros passados pelo form
		$params = $this->getRequest()->getParams();
				
		$caminhoImagem = $adapter->getFileName();
		
		
		$categoriaModel->setNome($params["nome"]);
		$categoriaModel->setDescricao($params["descricao"]);
		$categoriaModel->setImagem($caminhoImagem);

		$resultado = $this->categoriaMapper->salvar($categoriaModel);
			
		if ($resultado != NULL){
			$this->view->msg = "Registro salvo com sucesso!";
		}else{
			$this->view->msg = "Registro nao foi realizado! Caso o erro persita entre em contato com a assistencia e informe o codigo abaixo.<br /> ".$resultado;
		}
    }

    public function excluirAction()
    {
    	$this->view->title = "Exclusao de registro";
    	
        $idCategoria = $this->getRequest()->getUserParam("id");
        
        $result =  $this->categoriaMapper->excluir($idCategoria);
        
    }

    public function atualizarCategoriaAction()
    {
    	$this->view->title = "Editando registro";
    	 
        $idCategoria = $this->getRequest()->getParam("id");
        
        $categoria = $this->categoriaMapper->selecionarPeloId($idCategoria);
        
        $dados = $categoria[0];
       
        $form = new Application_Form_EditarCategoria();
        
        $form->populate($dados);
        
        $this->view->form = $form;
        
        $this->view->foto = $dados["imagem"];
        
    }

    public function salvarEdicaoAction()
    {
    	$this->view->title = "Atualizacao de categoria";

		$categoriaModel = new Application_Model_Categoria();
		
		//definindo destino da imagem
		$adapter = new Zend_File_Transfer_Adapter_Http();
		$adapter->setDestination("images/categorias");

		//transferindo a imagem
		$adapter->receive();

		//pegando parametros passados pelo form
		$params = $this->getRequest()->getParams();
				
		$caminhoImagem = $adapter->getFileName();
		
		$categoriaModel->setIdCategoria($params["id_categoria"]);
		$categoriaModel->setNome($params["nome"]);
		$categoriaModel->setDescricao($params["descricao"]);
		$categoriaModel->setImagem($caminhoImagem);

		$resultado = $this->categoriaMapper->atualizar($categoriaModel);
			
		if ($resultado == NULL){
			$this->view->msg = "Registro nao foi salvo! Caso esse erro persista, entre em contato";
		}else{
			$this->view->msg = "Registro salvo com sucesso!";
		}


    }

    public function alterarImagemAction()
    {    	 
    	$this->view->title = "Alterando imagem";
    	 
    	$form = new Application_Form_ImagemCategoria();
    	
    	$idCategoria = $this->getRequest()->getParam("id");
    	    	    	
    	$form->setDefault("id_categoria", $idCategoria);
    	
    	$this->view->form = $form;
        
    }

    public function salvarImagemAction()
    {
        // action body
   		$adapter = new Zend_File_Transfer_Adapter_Http();
		$adapter->setDestination("images/categorias");

		//transferindo a imagem
		$adapter->receive();
		
		$imagem = $adapter->getFileName();
		
		$idCategoria = $this->getRequest()->getParams();
		
		
		$this->categoriaMapper->atualizarImagem($idCategoria, $imagem);
		
		$this->_helper->redirector(array("module"=>"admin", "controller"=>"categoria"));
    	
    }


}















